import { IndexBase } from "./IndexBase";


export class IndexEdge implements IndexBase {
    //标识。
    public label: number[] = [2];
    //构造函数。
    public constructor(label0?: number, label1?: number) {
        var l0 = (label0 !== undefined) ? label0 : -1;
        var l1 = (label1 !== undefined) ? label1 : -1;
        if (l0 < l1) {
            this.label[0] = l0 | 0;
            this.label[1] = l1 | 0;
        } else {
            this.label[0] = l1 | 0;
            this.label[1] = l0 | 0;
        }
    }

    /**
     * 判断是否小于。
     */
    public lessThan(edge: IndexEdge): boolean {
        if (this.label[1] < edge.label[1]) {
            return true;
        }
        if (this.label[1] == edge.label[1]) {
            return this.label[0] < edge.label[0];
        }
        return false;
    }

    /**
     * 判断是否相等。
     * @param edge 边。
     */
    public equals(edge: IndexEdge): boolean {
        return (this.label[0] === edge.label[0]) && (this.label[1] === edge.label[1]);
    }

    /**
     * 判断是否不等。
     * @param edge 边。
     */
    public unequals(edge: IndexEdge): boolean {
        return !this.equals(edge);
    }
}